# -*- coding: utf-8 -*-
# @Desc:
# @Author: Administrator
# @Date: 2018-04-23 10:41

# 模块的导入方式(推荐使用)
# import 模块名一
# import 模块名二

# 还可以给导入的模块起别名:格式如下
# import 模块名 as 别名
# 注意:别名应该是大驼峰命名法

# 模块导入后的使用
# 通过 模块名. 使用模块提供的工具: 全局变量 ,函数 ,类

# import :是一次性把 模块中的 所有工具全部导入 ,并通过 模块名/别名 访问
# from 模块名 import 工具名 :是从模块中 导入 部分工具,可以直接使用模块提供的工具 :全局变量 ,函数 ,类

# 注意:如果导入的两个模块存在同名的函数,那么后导入模块的函数 会覆盖先导入模块的函数

# 使用from 模块名 import 工具名时也可以给工具起别名:格式如下
# from 模块名 import 工具名 as 别名

# from 模块名 import * : 也可以一次性导入模块的所有工具,但是不推荐使用,如果出现同名函数,出现问题不容易排查

# 两个模块都导入了一个同名函数,后导入的会覆盖先导入的函数

############################################################

# 1.搜索当前目录 指定的 模块名的文件,如果有就直接导入
# 2.如果没有就搜索 系统目录
# 注意:开发时给文件起名,不要和系统的模块文件重名
# Python中每个模块都有一个内置属性__file__,可以查看模块的完整路径

############################################################

# 实际开发中,当前模块的测试代码 只在测试的情况下执行,而在被导入其他文件时,不被执行!!! __name__ 属性可以做到
# __name__ 是Python 解释器内置属性,记录着一个字符串
# 如果 是被其他文件导入的, __name__ 就是模块名
# 如果 是当前执行的程序, __name__ 就是 __main__

# 在代码的最下方
def main():
    # 需要测试的代码
    pass

# 根据 __name__ 属性判断是否执行下方的代码
if __name__ == "__main__":
    main()

def test():
    print("-----test-----")
print(__name__)

# __name__这个变量,是在python执行的时候有一个默认的值
# 1.如果python3 aaa.py 那么此时__name__这个变量的值为 __main__
# 2.如果在bbb.py文件中,去import aaa.py文件的话,那么此时这个__name__的值为 import文件的名字aaa
# 例如:python3 aaa.py ---> __name__ = __main__
#      python3 bbb.py ---> aaa.py文件的 __name__ = aaa
#                          bbb.py文件的 __name__ = __main__
